﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace Utility
{
    public class Authorization
    {
        #region 登录判断
        public static string Check(object role)
        {
            if (role == null) { return "未登录"; }
            if (!((Models.Role)role).RoleEnabled)
            {
                return "您的角色不可用";
            }
            return "ACCEPT";
        }
        #endregion
        public static string Check(object r, string dowhat, string value)
        {
            if (r == null) return "登录超时";
            Models.Role role = (Models.Role)r;
            #region 模型管理
            if (dowhat == "ModelAdmin")
            {
                if (role.ModelAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 用户管理
            if (dowhat == "UserAdmin")
            {
                if (role.UserAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 权限管理
            if (dowhat == "RoleAdmin")
            {
                if (role.RoleAdmin) { return "ACCETP"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 日志管理
            if (dowhat == "LogAdmin")
            {
                if (role.LogAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 系统管理
            if (dowhat == "SystemAdmin")
            {
                if (role.SystemAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 栏目管理
            if (dowhat == "ColumnAdmin")
            {
                if (role.ColumnAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 内容管理
            if (dowhat == "ContentAdmin")
            {
                if (value == "") return "参数错误";
                if (Regex.IsMatch("," + role.ContentAdmin, "," + value + ","))
                {
                    return "ACCEPT";
                }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            #region 文件管理
            if (dowhat == "FileAdmin")
            {
                if (role.FileAdmin) { return "ACCEPT"; }
                else { return "请确保您有相应的权限，更多信息请联系开发人员"; }
            }
            #endregion

            return "";
        }
    }
}
